一:JDBC及其使用原理

jdbc(Java DataBase Connectivity)顾名思义就是Java数据库连接,通过使用Java语言来操作数据库的工具。

我们知道,我们在console控制台操作数据库时使用的是SQL语句,其实同理JDBC就是通过java语言来向数据库发送SQL语句。

原理分析:JDBC
厂商每个来提供遵循我们这种语法或者说的英文规范的驱动(驱动程序)驱动是一种API。

API:应用程序编程接口,及应用程序编程的接口,一些预先定义的函数,无需访问到源码,直接调用。

所以,我们直接调用驱动程序来与我们的数据库连接。

JDBC是接口,而JDBC驱动才是真正的接口的实现,没有驱动就无法完成数据库的连接。

二:JDBC核心的接口,以及代码步骤

代码步骤:(注意导入mysql数据库的驱动jar包)

1.注册驱动:的Class.forName( “com.mysql.jdbc.driver”);

使用JDBC时注册驱动时,不使用DriverManager.registerDriver(new com.mysql.jdbc.Driver());因为java.sql.Driver这个接口码虽然可以注册驱动,但是出现硬编码,而且其实注册了两次,com.mysql.jdbc.Driver中其实静态板块会创建本类的对象。

public class Driver extends NonRegisteringDriver implements java.sql.Driver {

静态 {

尝试 {

java.lang.DriverManager中registerDriver(new Driver());

} catch(SQLException E){

抛出 新的 RuntimeException(“无法注册驱动程序!”);

}

}

……

}

2.获取连接器(连接),如果可以获得,则表示已经连接上。

通过DriverManger的的getConnection方法来获取

Connection conn = DriverManger.getConnection(url,name,password);

url:标准资源的地址,也可以说是独有的网址。
它是用来找到要连接数据库“网址”,这里url =“jdbc:mysql:// 8080 / ”数据库名称“?useUnicode = true&characterEncoding = utf8”;

名与密码为数据库名和密码。

3.编写我们要执行的SQL语句

例如:String sql =“select * from tbl_user where uname =?and upassword =?”;

这里采用?占位符,是为了防止SQL攻击,加密了文档。

4.预处理创建对象来执行SQL语句。

对象采用PreparedStatement (PreparedStatement是Statement的子接口,你可以使用PreparedStatement来替换语句)。

//执行SQL语句PreparedStatement pstmt = conn.prepareStatement(sql);

5.设置占位符参数

pstmt.setString(1,username);

pstmt.setString(2,密码);

6.执行具体操作

(1)executeUpdate(sql)是执行更新操作,比如添加,更新(修改),删除的。

返回一个int类型的值用行接收,表示数据修改的次数,所以行> 0,则表示执行

否则没有执行。

executeQuery(sql)是执行查询的。返回一个结果集,我们用ResultSet rs对象来接收。则

ResultSet rs = pstmt.executeQuery();

rs.next()方法类似于IO流,调用rs对象的next()方法把“行光标”向下移动一行。用一个循环即可执行完所有数据的查询。

7.关闭

前面提到的IO流,其实JDBC类似于IO流。与IO流一样,使用后的东西都需要关闭!关闭的顺序是先得到的后关闭,后得到的先关闭。

及先关闭我们的ResultSet rs对象,然后是PreparedStatement pstmt对象,最后是连接连接器。

rs.close();

stmt.close();

con.close();